# CMakeLists.txt (主项目)
include(FetchContent)
FetchContent_Declare(
    nlohmann_json-${NLOHMANN_JSON_TAG}
    # 目录配置
    PREFIX         ${EXTERNAL_PROJECT_ROOT}                                          # ✅ 显式设置 prefix 目录
    SOURCE_DIR     ${MODULE_SRC}/nlohmann_json/${NLOHMANN_JSON_TAG}          # ✅ 显式设置 source 目录
    BINARY_DIR     ${MODULE_BUILD}/nlohmann_json/${NLOHMANN_JSON_TAG}        # ✅ 显式设置 build 目录
    INSTALL_DIR    ${MODULE_INSTALL_DIR}/nlohmann_json/${NLOHMANN_JSON_TAG}  # ✅ 显式设置 install 目录
    STAMP_DIR      ${MODULE_STAMP}/nlohmann_json/${NLOHMANN_JSON_TAG}        # ✅ 显式设置 stamp 目录
    TMP_DIR        ${MODULE_TMP}/nlohmann_json/${NLOHMANN_JSON_TAG}          # ✅ 显式设置 tmp 目录
    DOWNLOAD_COMMAND # 下载命令
        COMMAND ${CMAKE_COMMAND}
            -DSOURCE_DIR=<SOURCE_DIR>
            -DGIT_REPOSITORY=${NLOHMANN_JSON_REPO}
            -DGIT_SHALLOW=OFF
            -DGIT_TAG=${NLOHMANN_JSON_TAG}
            -P ${__DIR}/utils/git.cmake
    CMAKE_ARGS
        -DJSON_BuildTests=OFF   # ✅ 关键：关闭测试构建
        -DJSON_Install=ON
        -DJSON_ImplicitConversions=ON
        -DCMAKE_INSTALL_PREFIX=${MODULE_INSTALL_DIR}/nlohmann_json/${NLOHMANN_JSON_TAG}  # ✅ 显式设置 install 目录
    # ✅ 启用所有日志（调试必备）
    LOG_DOWNLOAD      OFF                           # 下载日志
    LOG_CONFIGURE     OFF                           # 配置日志
    LOG_BUILD         OFF                           # 构建日志
    LOG_INSTALL       OFF                           # 安装日志
    LOG_OUTPUT_ON_FAILURE OFF                       # 失败时自动输出日志
    STEP_TARGETS configure build install # 关键：添加 install 步骤
)

# 2. 获取内容（下载或使用缓存）
FetchContent_MakeAvailable(nlohmann_json-${NLOHMANN_JSON_TAG})

